package 函数式接口.方法引用;

import java.util.function.Consumer;


/**
 * 1.概述:引用方法
 * 2.啥时候使用:
 * a.被引用的方法要写在重写方法里面
 * b.被引用的方法从参数上,返回值上要和所在重写方法一致,而且引用的方法最好是操作重写方法的参数值的
 * c.干掉重写方法的参数;干掉->;干掉被引用方法的参数 -> 将被引用方法的.改成::
 */
public class Test01 {

    public static void main(String[] args) {
        method(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        }, "hello");

//        method(s -> System.out.println(s), "hello");


        // accept(String s) 参数String
        // 方法中的方法println(s)，参数也是String

        // 返回类型为void，println返回类型也为void
        method(System.out::println, "sdfsghsd");
    }

    public static void method(Consumer<String> consumer, String str) {
        consumer.accept(str);
    }
}
